As general-purpose computing systems (computers) evolve into entertainment centerpieces, there is a need to solve problems associated with antiquated computer-usage paradigms. One such paradigm is the idea that computers should display a single interface and are to be operated from a close distance. For instance, a Distance User Interface (DUI) is described in the nonprovisional application entitled User Interface For Operating a Computer From a Distance, Ser. No. 10/174,619, filed on Jun. 19, 2002, by Parker, et al., and commonly assigned to the assignee of the present invention, incorporated by reference herein. The DUI invention provides an interface for operating a computer from across a room as opposed to within a couple of feet. Such an invention conserves resources by enabling a computer to replace a stereo receiver, television, VCR, media player, and more.
With an Internet and/or cable-TV connection, a computer equipped with a DUI can be used to watch television, record movies, and listen to radio programming by using a remote control from a distance. But using a remote control to control the functions of a general-purpose computing device can be problematic.
One potential method of operating a computer with a remote control is to associate dedicated key codes with each button of the remote control. This method allows a computer to easily distinguish between input received from a keyboard from input received via the remote control.
There are situations where it is desirable for a computer to act differently based on whether it receives commands from an attached keyboard (or mouse) or from another device, such as a remote control. As explained above in Parker et al., computers can present a first user interface when a user is close, within a couple feet or so, and a second user interface when the user is operating the computer from across the room, a DUI. A better computing experience can be offered to a user if the computer can respond, while presenting a DUI, to user input received from a nearby user differently than user input received from a more distant user.
Because it is desirous for a computer to respond based on a source of data input, the computer must be able to distinguish between “two-foot user input” and “ten-foot user input” even when displaying a DUI. These terms are not intended to literally mean two and ten feet, rather they are intended to relate to the general concepts of operating a computer nearby versus from a distance. Because the dedicated-key-codes method relies on key codes uniquely associated and differentiated from conventional-keyboard key codes, a computer could easily recognize a source of user input based on the key codes received.
Such a solution, however, requires an inefficient use of resources. Key codes for conventional keyboards already exist. These key codes often exist as virtual-key codes. As is well known, a virtual-key code is usually an ASCII or hexadecimal code. For instance, a hexadecimal code of “31h” may correspond to the “1” key. The “ESC” key can be represented by “1Bh.” That is, “1B” hexadecimal. Modern keyboards have expanded beyond the 101-key keyboard to include additional keys associated with certain applications or events, such as “refresh.” Mouse clicks are also represented using key codes.
Because key codes currently exist and are widely accepted in the industry, having a remote control emit signals that correspond to conventional key codes would ease a programmer's unwarranted burden of programming a computer to respond to unique remote-control key codes. If unique remote-control key codes were used, then a “1” on the remote control would not have the same key code as a “1” on the keyboard. Programs coded to respond to a keyboard “1” would have to be modified to respond identically to another key code, that which corresponds to the remote-control “1.” Moreover, an industry would need to agree on common remote-control key-codes so that programs of the computer can respond as intended.
Because general-purpose computing devices, operating systems, and applications are already configured to interpret key codes that exist today, it would be greatly beneficial if a computer remote control used conventional key codes to transmit data input. Such common key-code usage, however, presents the problem of not being able to distinguish keyboard (or mouse) key codes from remote-control key codes. As previously mentioned, there may be occurrences where it is desirable for a key code received from a keyboard to cause a different response to the exact same key code received from a remote control. Accordingly, a need exists to be able to distinguish data input based on the source that generated the data input.